home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / GEM / AESGRAPH.I < prev    next >
Encoding:
Modula Implementation  |  1993-10-29  |  5.4 KB  |  202 lines

  1. IMPLEMENTATION MODULE AESGraphics;
  2. (*$L-, N+, Y+*)
  3.  
  4.  
  5. (*  MEGAMAX MODULA 2 GEM-Library :  Die AES Grafikfunktionen
  6.  *
  7.  *  Autor: Manuel Chakravarty           Erstellt :  05.11.87
  8.  *
  9.  *  Version   2.2     V#0015
  10.  *)
  11.  
  12. (*  05.11.87    | Übernahme von 'GEMBase' und 'GEMExt'
  13.  *  15.02.90    | Anpassung an Compilerversion 4.0
  14.  *  02.04.90    | Anpassung an public arrays
  15.  *)
  16.  
  17.  
  18. FROM    SYSTEM          IMPORT ASSEMBLER;
  19.  
  20. FROM    GrafBase        IMPORT Point, Rectangle, PtrMouseFormDef;
  21.  
  22. FROM    GEMGlobals      IMPORT MButtonSet, SpecialKeySet, OStateSet, PtrObjTree;
  23.  
  24. IMPORT  GEMShare;
  25.  
  26. (*$I GEMOPS.ICL *)
  27.  
  28.  
  29. PROCEDURE GrafMouse (form: MouseForm; mFormDefPtr: PtrMouseFormDef);
  30.  
  31.   BEGIN
  32.         ASSEMBLER
  33.           JMP         grafMouse       ; Zur eigentlichen Routine
  34.         END;
  35.   END GrafMouse;
  36.  
  37. PROCEDURE MouseKeyState (VAR mouseLoc : Point;
  38.                          VAR mouseButs: MButtonSet;
  39.                          VAR keys     : SpecialKeySet);
  40.                         
  41.   BEGIN
  42.     ASSEMBLER
  43.         MOVE.W  #GRAF_MKSTATE,(A3)+
  44.         JSR     aes_if
  45.         MOVE.L  pubs,A0
  46.         LEA     pubArrays.aINTOUT+10(A0),A0
  47.         MOVE.L  -(A3),A1
  48.         MOVE.W  -(A0),D0
  49.         MOVE.B  D0,(A1)
  50.         MOVE.L  -(A3),A1
  51.         MOVE.W  -(A0),D0
  52.         MOVE.B  D0,(A1)
  53.         MOVE.L  -(A3),A1
  54.         MOVE.L  -(A0),(A1)
  55.     END;
  56.   END MouseKeyState;
  57.       
  58. PROCEDURE MoveBox(orgin:Rectangle;dest:Point);
  59.   
  60. BEGIN
  61.   ASSEMBLER
  62.     MOVE.L      pubs,A0
  63.     LEA         pubArrays.aINTIN(A0),A0
  64.     MOVE.W      -(A3),$A(A0)
  65.     MOVE.W      -(A3),$8(A0)
  66.     MOVE.W      -(A3),$2(A0)
  67.     MOVE.W      -(A3),(A0)
  68.     MOVE.W      -(A3),$6(A0)
  69.     MOVE.W      -(A3),$4(A0)
  70.     MOVE.W      #GRAF_MBOX,(A3)+
  71.     JSR         aes_if
  72.     JSR         testINTOUT0
  73.   END;
  74. END MoveBox;
  75.  
  76. PROCEDURE GrowBox(orgin,dest:Rectangle);
  77.  
  78. BEGIN
  79.   ASSEMBLER
  80.     MOVE.L      pubs,A0
  81.     LEA         pubArrays.aINTIN+$10(A0),A0
  82.     MOVE.L      -(A3),-(A0)
  83.     MOVE.L      -(A3),-(A0)
  84.     MOVE.L      -(A3),-(A0)
  85.     MOVE.L      -(A3),-(A0)
  86.     MOVE.W      #GRAF_GROWBOX,(A3)+
  87.     JSR         aes_if
  88.     JSR         testINTOUT0
  89.   END;
  90. END GrowBox;
  91.  
  92. PROCEDURE ShrinkBox(orgin,dest:Rectangle);
  93.  
  94. BEGIN
  95.   ASSEMBLER
  96.     MOVE.L      pubs,A0
  97.     LEA         pubArrays.aINTIN+$8(A0),A0
  98.     MOVE.L      -(A3),-(A0)
  99.     MOVE.L      -(A3),-(A0)
  100.     LEA         $10(A0),A0
  101.     MOVE.L      -(A3),-(A0)
  102.     MOVE.L      -(A3),-(A0)
  103.     MOVE.W      #GRAF_SHRINKBOX,(A3)+
  104.     JSR         aes_if
  105.     JSR         testINTOUT0
  106.   END;
  107. END ShrinkBox;
  108.  
  109. PROCEDURE DragBox(start,bound:Rectangle; VAR loc:Point);
  110.  
  111. BEGIN
  112.   ASSEMBLER
  113.         MOVE.L  -(A3),-(A7)
  114.               
  115.         MOVE.L  pubs,A0
  116.         LEA     pubArrays.aINTIN+16(A0),A0
  117.         MOVE.L  -(A3),-(A0)
  118.         MOVE.L  -(A3),-(A0)
  119.         MOVE.L  -(A3),D0
  120.         MOVE.L  -(A3),-(A0)
  121.         MOVE.L  D0,-(A0)
  122.         MOVE.W  #GRAF_DRAGBOX,(A3)+
  123.         JSR     aes_if
  124.         
  125.         JSR     testINTOUT0
  126.         MOVE.L  pubs,A0
  127.         MOVE.L  (A7)+,A1
  128.         MOVE.L  pubArrays.aINTOUT+2(A0),(A1)
  129.   END;
  130. END DragBox;
  131.         
  132. PROCEDURE RubberBox(start:Rectangle; VAR loc:Point);
  133.  
  134. BEGIN
  135.   ASSEMBLER
  136.       MOVE.L  -(A3),-(A7)
  137.           
  138.       MOVE.L  pubs,A0
  139.       MOVE.L  -(A3),pubArrays.aINTIN+4(A0)
  140.       MOVE.L  -(A3),pubArrays.aINTIN(A0)
  141.       MOVE.W  #GRAF_RUBBOX,(A3)+
  142.       JSR     aes_if
  143.       
  144.       JSR     testINTOUT0
  145.       MOVE.L  pubs,A0
  146.       MOVE.L  (A7)+,A1
  147.       MOVE.L  pubArrays.aINTOUT+2(A0),(A1)
  148.   END;
  149. END RubberBox;
  150.         
  151. PROCEDURE SlideBox(tree:PtrObjTree;parent,child:CARDINAL;dir:SlideDirection;
  152.                    VAR newPos:CARDINAL);
  153.  
  154. BEGIN
  155.   ASSEMBLER
  156.         MOVE.L  -(A3),-(A7)
  157.         
  158.         MOVE.L  pubs,A0
  159.         MOVE.L  -(A3),pubArrays.aINTIN+2(A0)
  160.         MOVE.W  -(A3),pubArrays.aINTIN(A0)
  161.         MOVE.L  -(A3),pubArrays.ADDRIN(A0)
  162.         MOVE.W  #GRAF_SLIDEBOX,(A3)+
  163.         JSR     aes_if
  164.         
  165.         MOVE.L  pubs,A0
  166.         MOVE.L  (A7)+,A1
  167.         MOVE.W  pubArrays.aINTOUT(A0),(A1)
  168.   END;
  169. END SlideBox;
  170.         
  171. PROCEDURE WatchBox (    tree    : PtrObjTree;
  172.                         index   : CARDINAL;
  173.                         inState,
  174.                         outState: OStateSet;
  175.                     VAR inside  : BOOLEAN);
  176.                   
  177.   BEGIN
  178.     ASSEMBLER
  179.         MOVE.L  -(A3),-(A7)
  180.         
  181.         MOVE.L  pubs,A0
  182.         MOVEQ   #0, D0
  183.         SUBQ.L  #1, A3
  184.         MOVE.B  -(A3), D0
  185.         MOVE.W  D0, pubArrays.aINTIN+6(A0)
  186.         SUBQ.L  #1, A3
  187.         MOVE.B  -(A3), D0
  188.         MOVE.W  D0, pubArrays.aINTIN+4(A0)
  189.         MOVE.W  -(A3),pubArrays.aINTIN+2(A0)
  190.         MOVE.W  #GRAF_WATCHBOX,(A3)+
  191.         JSR     aes_if
  192.         
  193.         MOVE.L  pubs,A0
  194.         MOVE.L  (A7)+,A1
  195.         MOVE.W  pubArrays.aINTOUT(A0),(A1)
  196.     END;
  197.   END WatchBox;
  198.   
  199.  
  200. END AESGraphics.
  201. (* $FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$00000407$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651$FFF8B651ü$00000034T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$000009BF$00000AB8$00000B76$00000B9C$00000C26$00000D16$00000D3C$00000D60$00000DD7$00000F13$00000F5C$00000F82$00000FFA$00000034$000006DA$0000082FÕÇâ*)
  202.